声明:本文章没有干货

第一步一定是找API,我大概从网页端的WWDC资源了解到,Apple对这个资源没有任何限制,基本都是明文视频流URL供开发者抓取,这一步应该不难,那就开始吧。

首先是分析iOS和iPadOS下的Apple官方的WWDC内容平台「Developer」,用QuantumultX抓包,发现Apple也会用aws S3来host一些图片资源文件,一般是WWDC欢迎页的资源文件,考虑大概是aws S3比Apple自身的CDN更稳定,且aws CDN速度更优秀的缘故,借此规避风险。

Developer截图

aws S3 URL

另外发现应用内的icon是用pdf的形式来保存的,为了顺利缩放,这一点很稀奇。

PDF格式的Glyph

当然这些只是一些some fun facts about Apple。

我最终需要找到WWDC整个资源描述的文件,但是好几次都没有发现这个文件的存在,同时我也发现在app内加载视频列表非常快,所以怀疑app用了一个统一的资源路径文件进行预加载,而这个文件早就下载好了,并且在现在的运行过程中不会更新,也就抓不到相关请求,于是乎,我将app卸载了又安装,才终于抓到这个文件,也就是这里的contents.json。

资源文件合集

contens.json是资源的大集合,包含文章内容,视频内容,代码片段,这也是我第一次见识Apple的Web传输的数据。

这是其中一个WWDC Session的一部分数据内容,可以看到除了id外,有Web网页链接(猜测用作分享用途)、描述字段、名称、时间、涉及到的平台(WWDC Session不同的内容会对应不同平台的开发),甚至有缩略图的样式。

JSON

另外还有一部分视频内展示到的代码片段。

JSON

然后则是我们要的视频流、字幕URL,这里还有相关的Session和资源的数据。

JSON

看media字段,Apple提供了hls的stream传输和mp4格式的成型可供下载的文件,其中hls和tvOShls,(Apple在json中也不会弄错自家专有名词的大小写),用的是一个m3u8,用IINA打开这个m3u8,发现它提供了12路视频流,之前了解到tvOS上的WWDC可以提供4K画质,大概就是这里得到的。其中4K画质提供了12~14Mbps的码率,规格很高,Apple果真有钱。HEVC是High Efficiency Video Coding,顾名思义是高效率的视频编码格式。

image-20210513195639774

HEVC编码

非HEVC的视频流提供的是MPEG-2的编码格式,兼容性更好。

这时,我对devstreaming-cdn.apple.com这个域名产生了兴趣,我用站长之家的工具Ping了一下,发现中国大陆范围普遍将这个域名解析到了国内的CDN,其中出现了少数的网宿的身影,据说Apple Music的资源也给网宿CDN了,下次研究一下网宿。

image-20210513215513048

这不是重点,我发现所有除中国大陆以外的地区,这个域名都被解析到了Apple名下的17.253.*.*的IP地址,而且Apple在这么多区域都有CDN节点(有钱),这也不意外,毕竟Apple这么多服务,包括但不限于App Store、Apple Music、Apple Store、Apple TV+、Apple Push Notification Service等等,都得依靠强大的网络做分发,但是当我继续搜索相关资料的时候,我发现了这个。

image-20210513201337787

意思就是说AS714和AS6185管辖范围内的17.0.0.0/8这个block内的2^24-2个地址都属于Apple,holy moly

此外我还查了一下Apple名下的AS号码

image-20210513201903325

发现中国上海还有一个Apple的AS,在「苹果贸易(上海)有限公司」名下,这个大概就是负责Apple在中国大陆的apple.com.cn域名的管辖吧。

话说回来,这个/8的IP段确实了不得,除了保留的诸如10.0.0.0/8、127.0.0.0/8这种地址段之外,拿到/8的IP段的单位都是美国国防部(DoD)和全球的区域运营商,中国运营商也有一部分。

自治域

但是/8这个巨大的IP段有七个是在美国私企手中的,

美国私企

其中有AT&T Services(美国顶级运营商),Apple Inc.(美国苹果公司),Ford Motor Company(美国福特),PSINet, Inc.(一家美国ISP),Pridential Securities Inc.(一家美国保险公司),US Postal Service(美国邮政),Comcast Corporation(美国康卡斯特电缆通信有限公司)。

Web的许多标准都是美国以国家标准最先实行的,所以美国这么多企业拥有/8的IP地址如此宝贵的网络资源并不意外,但是除了AT&T,和某些ISP外,勉强算上当年还在做电脑的Apple,这些企业其实是用不到这么多的IP资源的,特别是汽车企业和电缆企业,但这些全球7*1/255的IPv4资源被这些企业大量占据,是否是IPv4资源的巨大浪费呢?同时美国国防部也占据了13个/8的IP网段,合理性有待考究。

IPv4的分配情况就研究到这里,我又想到一个问题,在中国大陆境内提供视听服务是需要相关的许可的,Apple的WWDC视频从中国大陆访问走的都是中国大陆境内的CDN,我猜测有两种可能:

  1. Apple自身有《信息网络传播视听节目许可证》
  2. 网宿科技有《信息网络传播视听节目许可证》,Apple通过这样规避政策风险

于是我跑去「国家广播电视总局」的相关页面找到了这份「《信息网络传播视听节目许可证》持证机构目录」,可以看到这份名单大多数是一些广播电视台和出版机构,以及少数一部分互联网公司。

《信息网络传播视听节目许可证》持证机构目录

譬如,在这边可以看到「上海宽娱数码科技有限公司」也就是Bilibili的身影,但没有看到微博的身影。

上海宽娱数码科技有限公司

一搜才想起来,微博、AcFun和凤凰网在2017年曾被要求强行关闭过视听节目服务,也就是因为这个「《信息网络传播视听节目许可证》」,有一点需要注意,「《信息网络传播视听节目许可证》」从2008年以后必须要求国企或国企控股的企业才能申请,所以目前大多数视频网站都没有,政府的处理方式则是,不轻易按无证经营进行查处,发现有违规问题则要求整改。微博当时的应对措施则是给予有「《信息网络传播视听节目许可证》」的用户上传视听节目的权限,但现在微博的UGC内容看似并未影响,只是审核敏感度太高,大概也是有这个无证经营的可能性拦在前面的缘故。

所以Apple在中国大陆提供本地CDN的WWDC资源,不能说是擦边球,但在内容经过严格审查的情况下也应该没有太大的政策风险,但对于也许有本地CDN的Apple TV+和外区Apple Music,有没有政策风险就难以确定了,我下次再研究研究。

搞了这么久,只把WWDC资源的API给找了出来,但意外发现了一些关于Apple的小趣事,希望下一节能正式开始Flutter的WWDC客户端的开发工作(小声)。

留言

2021-05-13

⬆︎TOP